package models

import (
	"database/sql/driver"
	"encoding/json"
	"fmt"
)

type JSONMap map[string]interface{}

// Scan 实现 Scanner 接口（从数据库读取）
func (m *JSONMap) Scan(value interface{}) error {
	bytes, ok := value.([]byte)
	if !ok {
		return fmt.Errorf("JSONMap Scan: expected []byte, got %T", value)
	}
	return json.Unmarshal(bytes, m)
}

// Value 实现 Valuer 接口（写入数据库）
func (m JSONMap) Value() (driver.Value, error) {
	return json.Marshal(m)
}
